package paneles;

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JSplitPane;

@SuppressWarnings("serial")
public class PanelGraficos extends JPanel {

	Connection conexion = null;
	ButtonGroup rb = new ButtonGroup();
	JSplitPane splitPane;
	JPanel panelIzquierdo, panelDerecho, panelPrecios, panelSeguridad, panelServicios;
	JRadioButton rdbtnPrecio, rdbtnSeg, rdbtnServ;
	JButton btnGraficar;
	
	public PanelGraficos() {
		initComponents();
		setVisible(true);
	}
	
	public void initComponents(){
		setBounds(0, 0, 1072, 508);
		setLayout(new BorderLayout(0, 0));
		
		splitPane = new JSplitPane();
		splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
		splitPane.setDividerSize(4);
		add(splitPane, BorderLayout.CENTER);
		
		panelIzquierdo = new JPanel();
		splitPane.setLeftComponent(panelIzquierdo);
		panelIzquierdo.setLayout(null);
		
		JLabel lblRankingDeResultados = new JLabel("Ranking de Sectores");
		lblRankingDeResultados.setFont(new Font("Century Gothic", Font.PLAIN, 14));
		lblRankingDeResultados.setForeground(Color.DARK_GRAY);
		lblRankingDeResultados.setBounds(10, 24, 169, 25);
		panelIzquierdo.add(lblRankingDeResultados);
		
		rdbtnPrecio = new JRadioButton("Por precios");
		rdbtnPrecio.setFont(new Font("Century Gothic", Font.BOLD, 12));
		rdbtnPrecio.setBounds(22, 56, 109, 23);
		panelIzquierdo.add(rdbtnPrecio);
		
		rdbtnSeg = new JRadioButton("Por seguridad");
		rdbtnSeg.setFont(new Font("Century Gothic", Font.BOLD, 12));
		rdbtnSeg.setBounds(143, 56, 109, 23);
		panelIzquierdo.add(rdbtnSeg);
		
		rdbtnServ = new JRadioButton("Por servicios");
		rdbtnServ.setFont(new Font("Century Gothic", Font.BOLD, 12));
		rdbtnServ.setBounds(276, 56, 109, 23);
		panelIzquierdo.add(rdbtnServ);
		
		rb.add(rdbtnPrecio);
		rb.add(rdbtnSeg);
		rb.add(rdbtnServ);
		
		btnGraficar = new JButton("Graficar");
		btnGraficar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				generarGraficos(arg0);
			}
		});
		btnGraficar.setBounds(414, 57, 89, 23);
		panelIzquierdo.add(btnGraficar);
		
		panelDerecho = new JPanel();
		panelDerecho.setSize(new Dimension(1072, 508));
		splitPane.setRightComponent(panelDerecho);
		panelDerecho.setLayout(new CardLayout(0, 0));
		
		panelPrecios = new JPanel();
		panelPrecios.setSize(new Dimension(1072, 508));
		panelDerecho.add(panelPrecios, "panelPrecios");
		panelPrecios.setLayout(new BorderLayout(0, 0));
		
		panelSeguridad = new JPanel();
		panelSeguridad.setSize(new Dimension(1072, 508));
		panelDerecho.add(panelSeguridad, "panelSeguridad");
		panelSeguridad.setLayout(new BorderLayout(0, 0));
		
		panelServicios = new JPanel();
		panelSeguridad.setSize(new Dimension(1072, 508));
		panelDerecho.add(panelServicios, "panelServicios");
		panelServicios.setLayout(new BorderLayout(0, 0));
		splitPane.setDividerLocation(100);
	}
	
	private void generarGraficos(ActionEvent e){
		
		if(rdbtnPrecio.isSelected()==true){
			panelPrecios.setVisible(true);
			panelSeguridad.setVisible(false);
			panelServicios.setVisible(false);
			mostrarGraficoPrecios();
		}else if(rdbtnSeg.isSelected()==true){
			panelPrecios.setVisible(false);
			panelSeguridad.setVisible(true);
			panelServicios.setVisible(false);
			mostrarGraficoSeguridad();
		}else if(rdbtnServ.isSelected()==true){
			panelPrecios.setVisible(false);
			panelSeguridad.setVisible(false);
			panelServicios.setVisible(true);
			mostrarGraficoServicios();
		}
		repaint();
	}
	
	private void mostrarGraficoPrecios() {
		
		try {
			panelPrecios.removeAll();
			GraficoBarrasPrecio grafico = new GraficoBarrasPrecio();
		
			panelPrecios.add(grafico);
			panelPrecios.repaint();
			CardLayout cl = (CardLayout)(panelDerecho.getLayout());
			cl.show(panelDerecho, "panelPrecios");
			
		} catch (Exception e) {}
		
	}
	
	private void mostrarGraficoSeguridad() {
		try {
			panelSeguridad.removeAll();
			GraficoBarrasSeg grafico = new GraficoBarrasSeg();
			panelSeguridad.add(grafico);
			panelSeguridad.repaint();
			CardLayout cl = (CardLayout)(panelDerecho.getLayout());
			cl.show(panelDerecho, "panelSeguridad");
			
		} catch (Exception e) {}
		
	}
	
	private void mostrarGraficoServicios() {
		try {
			panelServicios.removeAll();
			GraficoTortaServ grafico = new GraficoTortaServ();
		
			panelServicios.add(grafico);
			panelServicios.repaint();
			CardLayout cl = (CardLayout)(panelDerecho.getLayout());
			cl.show(panelDerecho, "panelServicios");
			
		} catch (Exception e) {}
		
	}
	
}
